Methods of Constrained Intra Block Copy for Reducing Worst Case Bandwidth in Video Coding

ABSTRACT

A method and apparatus of video coding using IntraBC (Intra Block Copy) for video data are disclosed. Restricted prediction is determined, in which one or more selected PU (prediction unit) sizes, PU prediction types or both are disabled or disallowed. Video coding is applied to the current block using coding modes including IntraBC prediction in accordance with the restricted prediction. The selected PU sizes, PU prediction types or both may correspond to 8×8 bi-prediction PU. In one example, the selected PU sizes, PU prediction types or both are disabled or disallowed for the restricted prediction except one or more conditions are determined to be satisfied. The conditions may correspond to at least one of two motion vectors of the 8×8 bi-prediction PU having integer values, the conditions may also correspond to at least one of motion vector components of the 8×8 bi-prediction PU having integer valueIntraBCIntraBCIntraBCIntraBCIntraBC.

CROSS REFERENCE TO RELATED APPLICATIONS

The present invention claims priority to U.S. Provisional PatentApplication, Ser. No. 62/146,533, filed on Apr. 13, 2015, U.S.Provisional Patent Application, Ser. No. 62/160,831, filed on May 13,2015, U.S. Provisional Patent Application, Ser. No. 62/183,262, filed onJun. 23, 2015, U.S. Provisional Patent Application, Ser. No. 62/237,717,filed on Oct. 6, 2015 and U.S. Provisional Patent Application, Ser. No.62/240,699, filed on Oct. 13, 2015. The U.S. Provisional PatentApplications are hereby incorporated by reference in their entireties.

FIELD OF THE INVENTION

The present invention relates to Intra picture block copy (IntraBC orIBC) coding for video data. In particular, the present invention relatesto various techniques for signalling, binarization and constraints ofsyntax elements associated with Intra picture block copy coding.

BACKGROUND AND RELATED ART

High Efficiency Video Coding (HEVC) is a new coding standard that hasbeen developed in recent years. In the High Efficiency Video Coding(HEVC) system, the fixed-size macroblock of H.264/AVC is replaced by aflexible block, named coding unit (CU). Pixels in the CU share the samecoding parameters to improve coding efficiency. A CU may begin with alargest CU (LCU), which is also referred as coded tree unit (CTU) inHEVC. In addition to the concept of coding unit, the concept ofprediction unit (PU) is also introduced in HEVC. Once the splitting ofCU hierarchical tree is done, each leaf CU is further split into one ormore prediction units (PUs) according to prediction type and PUpartition. HEVC also supports slice structure, where a picture ispartitioned into slices and each slice may use its own coding parametersor configurations.

Along with the High Efficiency Video Coding (HEVC) standard development,the development of extensions of HEVC has also started. The HEVCextensions include range extensions (RExt) which target at non-4:2:0colour formats, such as 4:2:2 and 4:4:4, and higher bit-depths videosuch as 12, 14 and 16 bits per sample. One of the likely applicationsutilizing RExt is screen sharing, over wired- or wireless-connection.Due to specific characteristics of screen contents, coding tools havebeen developed and demonstrate significant gains in coding efficiency

In the current development of screen content coding for High EfficiencyVideo Coding (HEVC) standard, some tools have been adopted due to theirimprovements in coding efficiency for screen contents. For Intra blocks,Intra prediction according to the conventional approach is performedusing prediction based on reconstructed pixels from neighbouring blocks.Intra prediction may select an Intra Mode from a set of Intra Modes,which include a vertical mode, horizontal mode and various angularprediction modes. For HEVC screen content coding, a new Intra codingmode, named Intra-block copy (IntraBC) has been used. The IntraBCtechnique that was originally proposed by Budagavi in AHG8. Video codingusing Intra motion compensation, Joint Collaborative Team on VideoCoding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13thMeeting: Incheon, K R, 18-26 Apr. 2013, Document: JCTVC-M0350(hereinafter JCTVC-M0350). An example according to JCTVC-M0350 is shownin FIG. 1, where a current coding unit (CU, 110) is coded using Intra MC(motion compensation). The prediction block (120) is located from thecurrent CU and a displacement vector (112). In this example, the searcharea is limited to the current CTU (coding tree unit), the left CTU andthe left-left CTU. The prediction block is obtained from the alreadyreconstructed region. Then, the displacement vector, also named blockvector (BV), and residual for the current CU are coded. It is well knownthat the HEVC adopts CTU and CU block structure as basic units forcoding video data. Each picture is divided into CTUs and each CTU isreclusively divided into CUs. During prediction phase, each CU may bedivided into multiple blocks, named prediction units (PUs) forperforming prediction process. After prediction residue is formed foreach CU, the residue associated with each CU is divided into multipleblocks, named transform units (TUs) to apply transforms.

In JCTVC-M0350, the Intra MC is different from the motion compensationused for Inter prediction in at least the following areas:

-   -   MVs are restricted to be 1-D for Intra MC (i.e., either        horizontal or vertical) while Inter prediction uses 2-D motion        estimation.    -   Binarization is fixed length for Intra MC while Inter prediction        uses exponential-Golomb.    -   Intra MC introduces a new syntax element to signal whether the        MV is horizontal or vertical.

Based on JCTVC-M0350, some modifications are disclosed by Pang, et al.in Non-RCE3: Intra Motion Compensation with 2-D MVs, Joint CollaborativeTeam on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC29/WG 11, 14th Meeting: Vienna, A T, 25 July-2 Aug. 2013, Document:JCTVC-N0256 (hereinafter JCTVC- N0256). Firstly, the Intra MC isextended to support 2-D MVs, so that both MV components can be non-zeroat the same time. This provides more flexibility to Intra MC than theoriginal approach, where the MV is restricted to be strictly horizontalor vertical.

In JCTVC-T1005 (Joshi, et al., HEVC Screen Content Coding Draft Text 3,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, C H, 10-18 Feb.2015, Document: JCTVC-T1005), the Intra block copy mode is harmonizedwith normal Inter mode. The reconstructed current picture beforedeblocking is inserted to the List 0 reference frame list as one of thereference frame. The Intra block copy mode is signalled by settingrefldx (i.e., reference picture index) to point to the reconstructedcurrent picture. Therefore, for a current picture, two pictures arerequired to be output. One is the un-filtered picture (i.e., beforedeblocking), and the other is the filtered picture (i.e., after sampleadaptive offset, SAO). In order to support the Intra block copy, theworst case bandwidth (BW) of screen content coding (SCC) is larger thanHEVC and HEVC ReExt.

In JCTVC-T0045 (Lainema, et al., AHG10: Memory bandwidth reduction forintra block copy, Joint Collaborative Team on Video Coding (JCT-VC) ofITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva,CH, 10-18 Feb. 2015, Document: JCTVC-T0045) and JCTVC-T0051(Laroche, etal., AHG10: On IBC memory reduction, Joint Collaborative Team on VideoCoding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20thMeeting: Geneva, C H, 10-18 Feb. 2015, Document: JCTVC-T0051), a methodis disclosed to signal a CTU-level flag to indicate whether the currentCTU will be referred by the following blocks for Intra block copy mode.If the flag is 1, the deblocking and SAO of this CTU are disabled. ThisCTU can be used for Intra block copy mode. Otherwise, the deblocking andSAO are enabled for this CTU. In this case, the CTU cannot be used forIntra block copy mode for the following blocks. Therefore, only one kindof CTU needs to be output. The worst case bandwidth is the same as HEVC.

Since the reference pictures are usually stored in DRAM (dynamic randomaccess memory), the memory bandwidth calculation needs to take the DRAMdata access behaviour into account. For the bandwidth estimation,equation (1) is usually used to calculate the average number of pixelsthat are required for the interpolation of each pixel in the worst case.The M and N are the PU width and height, m and n are width and height ofa memory unit of one address in DRAM. If bi-prediction is used, thisnumber should be doubled.

$\begin{matrix}{P = \frac{\left\lceil \frac{m - 1 + M + L - 1}{m} \right\rceil \times \left\lceil \frac{n - 1 + N + L - 1}{n} \right\rceil \times m \times n}{M \times N}} & (1)\end{matrix}$

In the above equation, “[x]” represents a ceiling function correspondingto the smallest integer not less than x.

BRIEF SUMMARY OF THE INVENTION

A method and apparatus of video coding for video data are disclosed.Restricted IntraBC prediction (Intra Block Copy prediction) isdetermined, where the IntraBC prediction is restricted from usingsamples in one or more blocks belonging to a selected block group. Videoencoding or decoding is applied to the current block using coding modesincluding the restricted IntraBC prediction. In one example, theselected block group consists of an 8×8 bi-prediction PU, a 4×8uni-prediction PU, an 8×4 uni-prediction PU, an AMP (asymmetric motionpartition) bi-prediction PU from a 16×16 PU, or any combination of them.In another example, the selected block group consists of an 8×8bi-prediction PU. The restricted IntraBC prediction can be applied tothe current block has a non-444 colour format.

The restricted IntraBC prediction may include exception by allowing therestricted IntraBC prediction to use the samples in blocks belonging tothe selected block group if one or more conditions are satisfied. Forexample, the conditions may correspond to the blocks being 8×8 IntraBCcoded blocks, the blocks being within a current CTU (coding tree unit)or a left CTU of the current block, or the blocks with at least one oftwo motion vectors having integer value. In another example, theconditions corresponds to the blocks being 8×8 bi-prediction blocks withat least one of two motion vectors having integer value. In yet anotherexample, the conditions correspond to said one or more blocks beingcoded with motion vectors all having integer values or being coded usingthe IntraBC prediction. The conditions may also correspond to the blocksbeing coded with at least one of motion vector components having integervalue.

A method and apparatus of video coding for video data are disclosed.Restricted prediction is determined to disallow or disable selectedprediction for one or more selected PU (prediction unit) sizes, PUprediction types or both are disabled or disallowed. Video coding isapplied to the current block using coding modes including IntraBCprediction in accordance with the restricted prediction, where theselected prediction corresponds to the IntraBC prediction. In oneexample, the selected PU sizes, PU prediction types or both correspondsto 8×8 bi-prediction PU. The IntraBC prediction in accordance with therestricted prediction can be applied to the current block has a non-444colour format.

The selected PU sizes, PU prediction types or both are disabled ordisallowed for the restricted prediction except that one or moreconditions are determined to be satisfied. For example, the selected PUsizes, PU prediction types or both may correspond to 8×8 bi-predictionPU, while the conditions may correspond to one of two motion vectors ofthe 8×8 bi-prediction PU having integer value or all of motion vectorsof the 8×8 bi-prediction PU having integer value. In other example, theselected PU sizes, PU prediction types or both may correspond to 8×8bi-prediction PU, and the conditions may correspond to at least one ofmotion vector components of the 8×8 bi-prediction PU having integervalue.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary IntraBC prediction according to HEVC(High Efficiency Video Coding) based Screen Content Coding Test ModuleVersion 4 (SCM-4.0).

FIG. 2 illustrates an exemplary flowchart of IntraBC coding according toan embodiment of the present invention, where the IntraBC prediction isrestricted from using samples belonging to one or more selected blocksizes, one or more prediction types or both.

FIG. 3 illustrates an exemplary flowchart of video coding according toan embodiment of the present invention, where one or more selected PU(prediction unit) sizes, PU prediction types or both are disabled ordisallowed for selected prediction.

DETAILED DESCRIPTION OF THE INVENTION

The following description is of the best-contemplated mode of carryingout the invention. This description is made for the purpose ofillustrating the general principles of the invention and should not betaken in a limiting sense. The scope of the invention is best determinedby reference to the appended claims.

Block Size Constraint for Intra Block Copy

According to the formula in equation (1), the worst case bandwidthanalysis for different PU size and different memory block size is shownin Table 1. Since the reconstructed pixel data of a CTU is aligned withthe memory units in DRAM and no interpolation filter is required,outputting the pre-filter or filtered results of a reconstructed CTUonly increases the bandwidth 1 pixel per pixel. The total bandwidth ofoutputting one filtered CTU (i.e., the “P+output”) and the totalbandwidth of outputting one filtered CTU and un-filtered CTU ((i.e., the“P+output+un-filtered output”) are also shown in Table 1. In Table 1,the bandwidth bottlenecks of HEVC in each (m, n) pairs are marked inbold in column “P+output”. As shown in Table 1, the worst case occursfor all 8×8 PU with bi-prediction. For this kind of blocks, if theun-filtered pixels are also output, the worst case bandwidth (as shownin column “P+output+un-filtered output”) is larger than the HEVC worstcast bandwidth.

TABLE 1 P + output + Uni-/ un-filtered (m, n) M N L Bi-Pred Total P P +output output (8, 2) 8 8 8 2 12 13 14 8 4 8 1 9 10 11 4 8 8 1 12 13 14 84 1 1 3 4 5 4 8 1 1 5 6 7 8 8 1 1 2.5 3.5 4.5 16 8 8 2 8 9 10 8 16 8 2 910 11 16 16 8 2 6 7 8 (8, 4) 8 8 8 2 15 16 17 8 4 8 1 12 13 14 4 8 8 115 16 17 8 4 1 1 4 5 6 4 8 1 1 6 7 8 8 8 1 1 3 4 5 16 8 8 2 10 11 12 816 8 2 10.5 11.5 12.5 16 16 8 2 7 8 9 (4, 4) 8 8 8 2 12.5 13.5 14.5 8 48 1 10 11 12 4 8 8 1 10 11 12 8 4 1 1 3 4 5 4 8 1 1 3 4 5 8 8 1 1 2.253.25 4.25 16 8 8 2 8.75 9.75 10.75 8 16 8 2 8.75 9.75 10.75 16 16 8 26.125 7.125 8.125 (4, 2) 8 8 8 2 10 11 12 8 4 8 1 7.5 8.5 9.5 4 8 8 1 89 10 8 4 1 1 2.25 3.25 4.25 4 8 1 1 2.5 3.5 4.5 8 8 1 1 1.875 2.8753.875 16 8 8 2 7 8 9 8 16 8 2 7.5 8.5 9.5 16 16 8 2 5.25 6.25 7.25(4, 1) 8 8 8 2 9.375 10.375 11.375 8 4 8 1 6.875 7.875 8.875 4 8 8 1 7.58.5 9.5 8 4 1 1 1.5 2.5 3.5 4 8 1 1 2 3 4 8 8 1 1 1.5 2.5 3.5 16 8 8 26.5625 7.5625 8.5625 8 16 8 2 7.1875 8.1875 9.1875 16 16 8 2 5.031256.03125 7.03125 (8, 1) 8 8 8 2 11.25 12.25 13.25 8 4 8 1 8.25 9.25 10.254 8 8 1 11.25 12.25 13.25 8 4 1 1 2 3 4 4 8 1 1 4 5 6 8 8 1 1 2 3 4 16 88 2 7.5 8.5 9.5 8 16 8 2 8.625 9.625 10.625 16 16 8 2 5.75 6.75 7.75

In 4:2:0 chroma format, the chroma is considered to be interleaved asrecommended in JCTVC-0007 (Chono, et al., JCT-VC AHG report: Memorycompression, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-TSG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 3rd Meeting: Guangzhou, C N,7-15 Oct., 2010, Document: JCTVC-0007) and JCTVC-L0440 (Francois, etal., AHG7: The performance of extended intra chroma prediction for non4:2:0 format, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-TSG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 12th Meeting: Geneva, C H,14-23 Jan. 2013, Document: JCTVC-L0440). These methods are used formemory BW analysis. For each pixel within M×N luma block the number ofpixels per fetched from the memory for chroma is calculated as follows.

$\begin{matrix}{P = \frac{\left\lceil \frac{m - 2 + M + {2L} - 2}{m} \right\rceil \cdot \left\lceil \frac{n - 1 + \frac{N}{2} + L - 1}{n} \right\rceil \cdot m \cdot n}{M \cdot \frac{N}{2}}} & (2)\end{matrix}$

Embodiment 1 Overcome Worst Case Memory Bandwidth by Restricting IntraBCReference Block Access

In order to overcome the issue of increased worst case memory bandwidthfor certain IntraBC cases, the access of the IntraBC reference block isrestricted if the IntraBC reference block belongs to a selected blockgroup.

For example, the IntraBC prediction can be restricted from using samplesfor the following prediction unit (PU) sizes and/or PU types:

-   -   1. 4×8 PU and 8×8 bi-predicted PUs;    -   2. 4×8 PU, 8×4 PU, and 8×8 bi-predicted PUs;    -   3. 4×8 PU, 8×4 PU, and 8×8 PUs;    -   4. 4×8 PU, 8×4 PU, 8×8 bi-predicted PU, 16×4 bi-predicted PU,        4×16 bi-predicted PU, 6×12 bi-predicted PU, and 12×16        bi-predicted PU;    -   5. 4×8 PU, 8×4 PU, and bi-predicted PU;    -   6. 4×8 PU and bi-predicted PU;    -   7. bi-predicted PU;    -   8. 8×8 bi-predicted PU;    -   9. 4×8 PU;    -   10. 8×4 PU.

In another example, the IntraBC prediction can be restricted from usingsamples for coding unit (CU) sizes smaller than a threshold:

-   -   11. CU size smaller than 16×16;    -   12. CU size smaller than 32×32;    -   13. CU size smaller than 64×64.

In another example, the IntraBC prediction can be restricted from usingsamples for PU sizes smaller than a threshold:

-   -   14. PU size smaller than 16×16;    -   15. PU size smaller than 32×32;    -   16. PU size smaller than 64×64.

In another example, the IntraBC prediction can be restricted from usingsamples for one or more combinations of above conditions:

-   -   17. CU size smaller than 16×16 or PU size is 4×16, 12×16, 16×4,        or 16×12;    -   18. CU size smaller than 16×16 or 16×4 bi-predicted PU, 4×16        bi-predicted PU, 16×12 bi-predicted PU, and 12×16 bi-predicted        PU;    -   19. CU size smaller than 16×16 or the CU has 16×4 bi-predicted        PU, 4×16 bi-predicted PU, 16×12 bi-predicted PU, and 12×16        bi-predicted PU;    -   20. CU size smaller than 16×16 or the CU has 16×4 bi-predicted        PU and 16×12 bi-predicted PU, or has 4×16 bi-predicted and 12×16        bi-predicted PU;    -   21. CU size smaller than 16×16 and bi-predicted PU.

In another example, the IntraBC prediction can be restricted from usingsamples for specific CU/PU partitions, such as:

-   -   22. CU has 16×4 bi-predicted PU, 4×16 bi-predicted PU, 16×12        bi-predicted PU, and 12×16 bi-predicted PU;    -   23. CU has 16×4 bi-predicted PU and 16×12 bi-predicted PU, or        has 4×16 bi-predicted PU and 12×16 bi-predicted PU.

In another example, the restricted IntraBC prediction is subject to thefollowing exceptions to allow the IntraBC prediction to use samples ofthe IntraBC reference block belonging to the selected block group if oneor more of the following conditions related to motion vector resolutionare satisfied:

-   -   24. samples coded by integer MV;    -   25. samples that one of the MV_x or MV_y is integer MV;    -   26. samples that one set of the (MV_x, MV_y) are both integer        MV.

In another example, the restricted IntraBC prediction is subject to thefollowing exceptions to allow the IntraBC prediction to use samples ofthe IntraBC reference block belonging to the selected block group if oneor more of the following conditions related to motion vector resolutionare satisfied:

-   -   27. the IntraBC prediction from the samples coded by Intra block        copy;    -   28. the IntraBC prediction from the samples coded without using        interpolation;    -   29. the IntraBC prediction from the samples that one of the        reference frames is from the reconstructed current picture,        which is used for Intra block copy;    -   30. the IntraBC prediction when the use_integer_MV_flag is 1 in        the current slice header;    -   31. the IntraBC prediction from the samples in the slice that        the use_integer_MV_flag is 1.

One or more of the above cases can be applied together in some codingprofiles or/and in some Chroma formats. For example, if the conditions2, 22, 27 and 30 are used, the samples in 8×4/4×8 uni-pred PU(uni-predicted PU), or in 8×8 bi-pred PU (bi-predicted PIA or in the CUhas 16×4 bi-predicted PU and 16×12 bi-predicted PU, or has 4×16bi-predicted PU and 12×16 bi-predicted PU are not allowed to bepredicted by IntraBC, except that if one of reference frames of thissample is from the reconstructed current picture or theuse_integer_MV_flag is 1 in the slice header that the sample belongs to.

For the above cases, a picture can be divided into multiple N×N blocks,where N can be 4, 8, 16, 32, 64, or the N×N block can be the size ofCTU/CTB. For these blocks, encoder can use a flag to indicate whetherthe block can be referred by Intra block copy mode. This flag can besignalled in bitstream or inferred. For example, for condition 8, the Ncan be 16, and this flag is to indicate whether this 16×16 block has aCU smaller than 16×16. If this flag is false, this block cannot bereferred by Intra block copy mode.

In another example, for cases 18, if a 16×16 block has a CU smaller than16×16 or has 16×4 bi-predicted PU, 4×16 bi-predicted PU, 16×12bi-predicted PU, and 12×16 bi-predicted PU, this 16×16 block cannot bereferred by Intra block copy mode.

In another example, for cases 18, if a 16×16 block has a CU smaller than16×16, or has 16×4 bi-predicted PU and 16×12 bi-predicted PU, or 4×16bi-predicted PU and 12×16 bi-predicted PU, this 16×16 block cannot bereferred by intra block copy mode.

In another example, the block size can be 8×8, and conditions 2, 22, 28and 31 are used. In yet another example, conditions 2, 28 and 31 areused.

In another example, the block size can be 16×16, and conditions 2, 22,28 and 31 are used.

In another example, the constrained Intra prediction can be applied withthis N×N block constraint. For example, if constrained Intra predictionis applied and one of the sample in this N×N block is coded with normalInter mode (i.e., reference samples not from current picture), thisblock is marked as invalid for Intra block copy.

The above conditions can be combined with other constraints. Forexample, for a certain region, all samples in this region can be usedfor Intra block copy mode. For the sample outside this region, one ormore of the above constraints (or/and the N×N block flag/constraint) canbe applied. The region can be the current CTU, or the current CTU plusleft M CTUs where M is an integer, such as 1 or 2.

In another example, if the samples are determined as invalid accordingto the above constraints and Intra block copy constraints (e.g. outsideof current picture, overlapped with current PU/CU, inter-coded pixelswhen constraint intra prediction is applied), the invalid samples aretreated as a default value, such 128 or (1<<(bit_depth −1)).

In another example, the CTU flag in JCTVC-T0045 and JCTVC-T0051 can beinferred as 0 (i.e., always enabling deblocking and SAO) when thecurrent slice is P-slice or I-slice.

Embodiment 2 Overcome Worst Case Memory Bandwidth by Disabling orDisallowing Some Modes in Some Profiles or Chroma Formats

According to this embodiment, some modes are disabled or disallowed touse selected prediction in order to reduce the worst case bandwidth forsome profiles or some Chroma formats. The selected prediction maycorrespond to the IntraBC prediction.

For example, the block corresponds to one of the following selected PUsizes and/or PU prediction types can be disabled or disallowed forselected prediction:

-   -   1. 4×8 PU and 8×8 bi-predicted PU;    -   2. 4×8 PU, 8×4 PU, and 8×8 bi-predicted PU;    -   3. 4×8 PU, 8×4 PU, and 8×8 PU;    -   4. 4×8 PU, 8×4 PU, 8×8 bi-predicted PU, 16×4 bi-predicted PU,        4×16 bi-predicted PU, 16×12 bi-predicted PU, and 12×16        bi-predicted P    -   5. 4×8 PU, 8×4 PU, 8×8 bi-predicted PU, 16×4 bi-predicted PU,        4×16 bi-predicted PU, 16×12 bi-predicted PU, and 12×16        bi-predicted PU;    -   6. 4×8 PU, 8×8 bi-predicted PU, 4×16 bi-predicted PU, and 12×16        bi-predicted PU;    -   7. bi-predicted PU;    -   8. 8×8 bi-predicted PU;    -   9. 4×8 PU;    -   10. 8×4 PU;    -   11. 4×8 PU and bi-predicted PU.

In another example, the block corresponds to one of the followingselected CUs with sizes smaller than a threshold can be disabled ordisallowed for selected prediction:

-   -   12. CU that size smaller than 16×16;    -   13. CU that size smaller than 32×32;    -   14. CU that size smaller than 64×64.

In another example, the block corresponds to one of the followingselected PUs with sizes smaller than a threshold can be disabled ordisallowed for selected prediction:

-   -   15. PU size smaller than 16×16;    -   16. PU that smaller than 32×32;    -   17. PU that smaller than 64×64;

In another example, the block for one or more combinations of above CUand PU cases can be disabled or disallowed for selected prediction:

-   -   18. Disable CU that size smaller than 16×16 and bi-predicted PU;    -   19. Disable CU that has 16×4 bi-predicted PU, 4×16 bi-predicted        16×12 bi-predicted PU, and 12×16 bi-predicted PU;    -   20. Disable CU that has 16×4 bi-predicted PU and 16×12        bi-predicted PU, or has 4×16 bi-predicted PU and 12×16        bi-predicted PU;    -   21. Disable CU that size smaller than 16×16 or PU that size is        4×16, 12×16, 16×4, or 16×12;    -   22. Disable CU that size smaller than 16×16 or 16×4 bi-predicted        PU, 4×16 bi-predicted PU, 16×12 bi-predicted PU, and 12×16        bi-predicted    -   23. Disable CU that size smaller than 16×16 or the CU has 16×4        bi-predicted PU, 4×16 bi-predicted PU, 16×12 bi-predicted PU,        and 12×16 bi-predicted PU;    -   24. Disable CU that size smaller than 16×16 or the CU has 16×4        bi-predicted PU and 16×12 bi-predicted PU, or has 4×16        bi-predicted PU and 12×16 bi-predicted PU.

In another example, the block for the selected PU sizes and/or PU typeand MV resolution can be disabled or disallowed for selected prediction:

-   -   25. Disable/disallow 4×8 PU with fractional MV and 8×8        bi-predicted PU;    -   26. Disable/disallow 4×8 PU with fractional MV, 8×4 PU with        fractional MV, and 8×8 bi-predicted PU;    -   27. Disable/disallow 4×8 PU with fractional MV, 8×4 PU with        fractional MV, 8×8 bi-predicted PU, 16×4 bi-predicted PU with        fractional MV, 4×16 bi-predicted PU with fractional MV, 16×12        bi-predicted PU with fractional MV, and 12×16 bi-predicted PU        with fractional MV;.    -   28. Disable/disallow 4×8 PU with fractional MV, 8×8 bi-predicted        PU, 4×16 bi-predicted PU with fractional MV, and 12×16        bi-predicted PU with fractional MV;    -   29. Disable/disallow 4×N PU with fractional MV and 8×8        bi-predicted PU, N can be 8 and 16;    -   30. Disable/disallow 4×8 PU with fractional MV-x and fractional        MV-y and 8×8 bi-predicted PU.

In another example, disabling or disallowing the block mode is subjectto one or more exceptions to allow the IntraBC prediction if one or moreconditions related to PU sizes and/or PU type and MV resolution aresatisfied:

-   -   31. Allowing the PU that coded by integer MV;    -   32. Allowing the PU that one of the MV_x or MV_y is integer MV;    -   33. Allowing the PU that one set of the (MV_x, MV_y) are both        integer MV;    -   34. Allowing the 4×8 PU with fractional MV if the other 4×8 PU        in the same CU is coded by integer MV or coded by intra block        copy;    -   35. Allowing the PU that MV_y is integer MV;    -   36. Allowing the PU that MV_y of one list is integer MV;    -   37. Allowing the PU that MV_x is integer MV;    -   38. Allowing the PU that MV_x of one list is integer MV;    -   39. Allowing the bi-perdition PU that the MVs of two lists are        the same and the two reference pictures are the same picture.

In another example, disabling or disallowing the block mode is subjectto one or more exceptions to allow the IntraBC prediction if one or morefollowing conditions:

-   -   40. Allowing the PU that one of the reference frames is from the        reconstructed current picture, which is used for Intra block        copy;    -   41 Allowing the PU when the use_integer_MV_flag is 1 in the        current slice header;    -   42. Allowing the PU in the slice that the use_integer_MV_flag is        1;    -   43. Allowing the PU that coded by Intra block copy;    -   44. Allowing the PU that coded without using interpolation.

One or more of these constraints can be applied together in someprofiles or/and in some Chroma formats, such as a non-444 format or a420 format. For example, if the items 9 and 31 are used, the 4×8 PU withfractional MV (fractional MV_x or fractional MV_y) is disallowed in the420 format. In another example, if the items 9 and 32 are used, the 4×8PU with both fractional MV_x and fractional MV_y are disallowed in the420 format.

In another example, if the items 9 and 35 are used, the 4×8 PU withfractional MV_y is disallowed in the 420 format. In another example, ifthe items 8 and 36 are used, the 8×8 bi-prediction PU with fractional L0MV_y and fractional L1 MV_y is disallowed in the 420 format.

In yet another example, if the items 8 and 33 are used, the 8×8bi-prediction PU is not allowed. However, the 8×8 bi-prediction PU withone set of integer MV_x and integer MV_y is allowed.

In yet another example, if the item 8, 33 and 39 are used, the 8×8bi-prediction PU is not allowed, but the 8×8 bi-prediction PU with oneset of integer MV_x and integer MV_y is allowed, or the 8×8bi-prediction PU with the same L0 MV and L1 MV and the same POC (pictureorder count) for two reference pictures is allowed.

In yet another example, if the item 8, 33 and 39 are used, the 8×8bi-prediction PU is not allowed for the selected prediction, but the 8×8bi-prediction PU with all integer MV_x and integer MV_y is allowed, orthe 8×8 bi-prediction PU with the same L0 MV and L1 MV and the same POC(picture order count) for two reference pictures is allowed.

In yet another example, if the item 8, 35 and 39 are used, the 8×8bi-prediction PU with integer L0 MV_y or integer L1 MV_y is allowed, or8×8 bi-prediction PU with the same L0 MV and L1 MV and the same POC(picture order count) for two reference pictures is allowed.

These constraints/conditions can be applied when IntraBC is used, whichis when pps_curr_pic_ref_enabled_flag is 1, CurrPicInList0Flag is 1, orCurrPicInList1Flag is 1.

In the above embodiment, these constraints/conditions can be appliedwhen using some chroma formats, such as the 420,444 or 422 format. Forexample, the following text is specified for item 9 and 31.

-   -   When inter_pred_idc[x0 ][ y0 ] is equal to 1, nPbW is equal to 4        (i.e., PU width=4), nPbH is equal to 8 (i.e., PU height=8), and        either of CurrPicInList0Flag and CurrPicInList1Flag is equal to        1, and one of the following conditions, the variable        FourbyEightUniPredFractionalMvInUseforCurrPic is set equal to 1.        The variable indicates whether the 4×8 uni-prediction PU with        fractional MV is allowed to IntraBC mode. The following four        conditions imply a referenence picture in L0 or L1 exists and        the MV_x or MV_y is fractional.    -   RefIdxL0[x0 ][ y0 ] is not −1 and MvL0[x0 ][ y0 ][ 0 ] & 0×03 is        not 0;    -   RefIdxL0[x0 ][ y0 ] is not −1 and MvL0[x0 ][ y0 ][ 1 ] & 0×03 is        not 0;    -   RefIdxL1[x0 ][ y0 ] is not −1 and MvL1[x0 ][ y0 ][ 0 ] & 0×03 is        not 0;    -   RefIdxL1[x0 ][ y0 ] is not −1 and MvL1[x0 ][ y0 ][ 1 ] & 0×03 is        not 0.    -   Where the MvLx[x0 ][ y0 ][ 0 ] is the x-component of MvLx[x0 ][        y0 ] and the MvLx[x0 ][ y0 ][1] is the y-component of MvLx[x0 ][        y0 ].

Bitstreams conforming to the screen content coding extensions profilesshall obey the following constraints:

-   -   When chroma format_idc is less than 3, the value of        FourbyEightUniPredFractionalMvinUseforCurrPic shall be equal to        0.

In another example, the following text is specified for item 9 and 35.

-   -   When inter_pred_idc[x0 ][ y0 ] is equal to 1, nPbW is equal to        4, nPbH is equal to 8, and either of CurrPicInList0Flag and        CurrPiclnList1Flag is equal to 1, and one of the following        conditions is true, the variable        FourbyEightUniPredFractionalMvyInUseforCurrPic is set equal to        1.    -   RefIdxL0[x0 ][ y0 ] is not −1 and MvL0[x0 ][ y0 ][ 1] & 0×03 is        not 0;    -   RefIdxL1[x0 ][ y0 ] is not −1 and MvL1[x0 ][ y0 ][ 1] & 0×03 is        not 0.

Bitstreams conforming to the screen content coding extensions profilesshall obey the following constraints:

-   -   When chroma_format_idc is less than 3, the value of        FourbyEightUniPredFractionalMvyInUseforCurrPic shall be equal to        0.

For example, the following text is specified for item 9 and 31.

-   -   When inter_pred_idc[x0 ][ y0 ] is equal to 1, nPbW is equal to        4, nPbH is equal to 8, and either of CurrPicInList0Flag and        CurrPicInList1Flag is equal to 1, and one of the following        conditions is true, the variable        FourbyEightUniPredFractionalMvInUseforCurrPic is set equal to 1.    -   RefIdxL0[x0 ][ y0 ] is not −1 and MvL0[x0 ][ y0 ][ 0 ] & 0×03 is        not 0;    -   RefIdxL0[x0 ][ y0 ] is not −1 and MvL0[x0 ][ y0 ][ 1 ] & 0×03 is        not 0;    -   RefIdxL1[x0 ][ y0 ] is not −1 and MvL1[x0 ][ y0 ][ 0 ] & 0×03 is        not 0;    -   RefIdxL1[x0 ][ y0 ] is not −1 and MvL1[x0 ][ y0 ][ 1 ] & 0×03 is        not 0.

Bitstreams conforming to the screen content coding extensions profilesshall obey the following constraints:

-   -   When chroma_format_idc is less than 3, the value of        FourbyEightUniPredFractionalMvInUseforCurrPic shall be equal to        0.

Another example, the following text is specified for item 9 and 35.

-   -   When inter_pred_idc[x0 ][ y0 ] is equal to 1, nPbW is equal to        4, nPbH is equal to 8, and either of CurrPicInList0Flag and        CurrPicInList1Flag is equal to 1, and one of the following        condition is true, the variable        FourbyEightUniPredFractionalMvyInUseforCurrPic is set equal to        1.    -   RefIdxL0[x0 ][ y0 ] is not −1 and MvL0[x0 ][ y0 ][ 1] & 0×03 is        not 0    -   RefIdxL1[x0 ][ y0 ] is not −1 and MvL1[x0 ][ y0 ][ 1] & 0×03 is        not 0

Bitstreams conforming to the screen content coding extensions profilesshall obey the following constraints:

-   -   When chroma_format_idc is less than 3, the value of        FourbyEightUniPredFractionalMvyInUseforCurrPic shall be equal to        0.

In another embodiment, these constraints are applied whenuse_integer_MV_flag is 1, In yet another embodiment, these constraintscan be applied by using a requirement of bitstream conformance or anormative change. For example, a bitstream conformance is required thatthe 4×8 PU with fractional MV (one of the MVx and MVy is fractional MV)is disallowed in the 420 format when the pps_curr_pic_ref_enabled_flagis 1. In another example, bitstream conformance is required that the 4×8PU with both of the fractional MV_x and fractional MV_y is disallowed in420 the format when the pps_curr_pic_ref_enabled_flag is 1.

In yet another embodiment, whether these constraints can be applieddepends on an enable syntax in the SPS (sequence parameter set), PPS, orslice header. e.g.:

-   -   if (pps_curr_pic_ref_enabled_flag ==1 && chroma_format_idc<3 &&        use_integer_MV_flag ==1)    -   disable_8×8_bi_4×8_uni_frac_MV_inter_flag or    -   if (pps_curr_pic_ref_enabled_flag==1 && chroma_format_idc<3)        disable_8×8_bi_4×8_uni_frac_MV_inter_flag

For example, a syntax disable_8×8_bi_4×8_uni_frac_MV_inter_flag can beadded in PPS if pps_curr_pic_ref_enabled_flag is equal to 1 andchroma_format_idc<3. If the disable_8×8_bi_4×8_uni_frac_MV_inter_flag isequal to 1, a requirement of bitstream conformance is needed. In thiscase, when curr_pic_as_ref_enabled_flag is equal to 1 andchroma_format_idc<3, inter_pred_idc[x ][y ] shall not be equal to 2 for8×4 PU (i.e., nPbW =8 and nPbH=4) or 4×8 PU (i.e., nPbW=4 and nPbH=8)when the MV_x and MV_y of the current PU are not integer MV or one ofthe MV_x and MV_y of the current PU is not integer MV.

The IntraBC enable flag (i.e., curr_pic_as_ref_enabled) can be signalledin the PPS or slice header. So the IntraBC can be enabled in somepictures and disabled in some pictures. The proposed constraints areapplied when IntraBC is enabled.

The restricted IntraBC prediction can be applied in non-444 video. Foreach 8×8 CU with two 4×8 PUs, one PU can have fractional MVs (i.e.,“fractional MV_x and fractional MV_y or “fractional MVx or fractionalMVy”) if the other PU is coded by integer MV or coded by Intra blockcopy.

In an example of embodiment 2, if the constraint 29 is applied, arequirement of bitstream conformance is needed. in this case, whencurr_pic_as_ref_enabled_flag is equal to 1, inter_pred_idc[x ][y] shallnot be equal to 2 when nPbW=8 and nPbH=8.

In another example, when curr_pic_as_ref_enabled_flag is equal to 1, andwhen nPbW=8 and nPbH=8, the inter_pred_idc[x ][y]=2 is removed from thecodeword.

In one example, in method-2, if the constraint 39 and 30 are applied, arequirement of bitstream conformance is needed that whencurr_pic_as_ref_enabled_flag is equal to 1 and chroma_format_idc<3,inter_pred_idc[x ][y] shall not be equal to 2 for 8×8 PU (i.e., nPbW=8and nPbH =8) or 4×8 PU (i.e., nPbW=4 and nPbH=8).

FIG. 2 illustrates an exemplary flowchart of IntraBC coding according toan embodiment of the present invention, where the IntraBC prediction isrestricted from using samples belonging to one or more selected blocksizes, one or more prediction types or both. The system receives inputdata associated with a current block in a current picture in step 210.For encoding, the input data corresponds to data associated with thecurrent block to be encoded. For decoding, the input data corresponds tocoded bitstream including the current block. Restricted IntraBCprediction is determined by restricting IntraBC prediction from usingsamples in one or more blocks belonging to a selected block group instep 220. Video encoding or decoding is applied to the current blockusing coding modes including the restricted IntraBC prediction in step230.

FIG. 2 illustrates an exemplary flowchart of video coding according toan embodiment of the present invention, where one or more selected PUsizes, PU prediction types or both are disabled or disallowed. Thesystem receives input data associated with a current block in a currentpicture in step 310. For encoding, the input data corresponds to dataassociated with the current block to be encoded. For decoding, the inputdata corresponds to coded bitstream including the current block. Therestricted prediction is determined by disabling or disallowing selectedprediction for one or more selected PU sizes, PU prediction types orboth in step 320. Video coding is applied to the current block usingcoding modes including the IntraBC prediction in accordance with therestricted prediction in step 330, wherein the selected predictioncorresponds to the IntraBC prediction.

In one embodiment, disabling the selected PU sizes and/or PU predictiontypes implies that there is no syntax element related to the disabledselected PU sizes and/or PU prediction types. On the other hand,disallowing the selected PU sizes and/or PU prediction types impliesthat the encoder may or may not use the selected PU sizes and/or PUprediction, however, the decoder can ensure that the selected PU sizesand/or PU prediction will not be used for decoding the current block.

The flowchart shown above is intended to illustrate examples ofrestricted IntraBC coding in a video encoder or a decoder incorporatingembodiments of the present invention. A person skilled in the art maymodify each step, re-arranges the steps, split a step, or combine thesteps to practice the present invention without departing from thespirit of the present invention.

The above description is presented to enable a person of ordinary skillin the art to practice the present invention as provided in the contextof a particular application and its requirement. Various modificationsto the described embodiments will be apparent to those with skill in theart, and the general principles defined herein may be applied to otherembodiments. Therefore, the present invention is not intended to belimited to the particular embodiments shown and described, but is to beaccorded the widest scope consistent with the principles and novelfeatures herein disclosed. In the above detailed description, variousspecific details are illustrated in order to provide a thoroughunderstanding of the present invention. Nevertheless, it will beunderstood by those skilled in the art that the present invention may bepracticed.

Embodiment of the present invention as described above may beimplemented in various hardware, software codes, or a combination ofboth. For example, an embodiment of the present invention can be one ormore electronic circuits integrated into a video compression chip orprogram code integrated into video compression software to perform theprocessing described herein. An embodiment of the present invention mayalso be program code to be executed on a Digital Signal Processor (DSP)to perform the processing described herein. The invention may alsoinvolve a number of functions to be performed by a computer processor, adigital signal processor, a microprocessor, or field programmable gatearray (FPGA). These processors can be configured to perform particulartasks according to the invention, by executing machine-readable softwarecode or firmware code that defines the particular methods embodied bythe invention. The software code or firmware code may be developed indifferent programming languages and different formats or styles. Thesoftware code may also be compiled for different target platforms.However, different code formats, styles and languages of software codesand other means of configuring code to perform the tasks in accordancewith the invention will not depart from the spirit and scope of theinvention.

The invention may be embodied in other specific forms without departingfrom its spirit or essential characteristics. The described examples areto be considered in all respects only as illustrative and notrestrictive. The scope of the invention is therefore, indicated by theappended claims rather than by the foregoing description. All changeswhich come within the meaning and range of equivalency of the claims areto be embraced within their scope.

1. A method of video coding for video data, comprising: receiving inputdata associated with a current block in a current picture; determiningrestricted IntraBC prediction (Intra Block Copy prediction), whereinsaid determining the restricted IntraBC prediction comprisingrestricting IntraBC prediction from using samples in one or more blocksbelonging to a selected block group; and applying video encoding ordecoding to the current block using coding modes including therestricted IntraBC prediction.
 2. The method of claim 1, wherein theselected block group comprises an 8×8 bi-prediction PU (predictionunit), a 4×8 uni-prediction PU, an 8×4 uni-prediction PU, an AMP(asymmetric motion partition) bi-prediction PU from a 16×16 PU, or anycombination thereof.
 3. The method of claim 1, wherein the selectedblock group consists of an 8×8 bi-prediction PU.
 4. The method of claim1, wherein said restricting the IntraBC prediction from using samples insaid one or more blocks belonging to the selected block group includesone or more exceptions by allowing the IntraBC prediction to use thesamples in said one or more blocks belonging to the selected block groupif one or more conditions are satisfied.
 5. The method of claim 4,wherein said one or more conditions correspond to said one or moreblocks being 8×8 IntraBC coded blocks, said one or more blocks beingwithin a current CTU (coding tree unit) or a left CTU of the currentblock, or said one or more blocks with at least one of two motionvectors having integer value.
 6. The method of claim 4, wherein said oneor more conditions correspond to said one or more blocks being 8×8bi-prediction blocks with at least one of two motion vectors havinginteger value.
 7. The method of claim 4, wherein said one or moreconditions correspond to said one or more blocks being coded with motionvector(s) all having integer values or being coded using the IntraBCprediction.
 8. The method of claim 4, wherein said one or moreconditions correspond to said one or more blocks being coded with atleast one of motion vector components having integer value. 9.(canceled).
 10. A method of video coding for video data, comprising:receiving input data associated with a current block in a currentpicture; determining restricted prediction, wherein said determining therestricted prediction comprising disabling or disallowing selectedprediction for one or more selected PU (prediction unit) sizes, PUprediction types or both; and applying video coding to the current blockusing coding modes including IntraBC prediction (Intra Block Copyprediction) in accordance with the restricted prediction, wherein theselected prediction corresponds to the IntraBC prediction.
 11. Themethod of claim 10, wherein said one or more selected PU sizes, PUprediction types or both corresponds to 8×8 bi-prediction PU.
 12. Themethod of claim 10, wherein said disabling or disallowing prediction forsaid one or more selected PU sizes, PU prediction types or both issubjected to one or more exceptions if one or more conditions aresatisfied.
 13. The method of claim 12, wherein said one or more selectedPU sizes, PU prediction types or both corresponds to 8×8 bi-predictionPU and said one or more conditions correspond to at least one of twomotion vectors of said 8×8 bi-prediction PU having integer values. 14.The method of claim 12, wherein said one or more selected PU sizes, PUprediction types or both corresponds to 8×8 bi-prediction PU and saidone or more conditions correspond to motion vector(s) of the 8×8bi-prediction PU all having integer values.
 15. The method of claim 12,wherein said one or more selected PU sizes, PU prediction types or bothcorresponds to 8×8 bi-prediction PU and said one or more conditionscorrespond to at least one of motion vector components having integervalue.
 16. The method of claim 10, wherein the current block has anon-444 colour format.
 17. An apparatus of video coding for video data,comprising one or more electronic circuits arranged to: receive inputdata associated with a current block in a current picture; determinerestricted prediction to disable or disallow prediction for one or moreselected PU (prediction unit) sizes, PU prediction types or both; andapply video coding to the current block using coding modes includingIntraBC prediction in accordance with the restricted prediction, whereinthe selected prediction corresponds to the IntraBC prediction.
 18. Theapparatus of claim 17, wherein said one or more selected PU sizes, PUprediction types or both corresponds to 8×8 bi-prediction PU.
 19. Theapparatus of claim 17, wherein said one or more electronic circuits arearranged to further include one or more exceptions for disabling ordisallowing prediction for said one or more selected PU sizes, PUprediction types or both if one or more conditions are satisfied. 20.The apparatus of claim 19, wherein said one or more selected PU sizes,PU prediction types or both corresponds to 8×8 bi-prediction PU and saidone or more conditions correspond to at least one of two motion vectorsof said 8×8 bi-prediction PU having integer value.
 21. The apparatus ofclaim 19, wherein said one or more selected PU sizes, PU predictiontypes or both corresponds to 8×8 bi-prediction PU and said one or moreconditions correspond to motion vector(s) of the 8×8 bi-prediction PUall having integer values.
 22. The apparatus of claim 19, wherein saidone or more selected PU (prediction unit) sizes, PU prediction types orboth corresponds to 8×8 bi-prediction PU and said one or more conditionscorrespond to at least one of motion vector component having integervalue.